//引入依赖的配置文件模块
require(["config"],function(){
	//引入依赖文件
	require(["jquery","template","header","fly","zoom","cookie"],function($,template){
		function Detail(){
			this.amount = null;
			this.render();
		}
		
		Detail.prototype = {
			//渲染详情页面数据
			render: function() {
				$.ajax("http://rap2api.taobao.org/app/mock/data/497937")
					.done($.proxy(this.handleData, this));//成功时执行的函数
			},
			//处理ajax获取到的数据
			handleData:function(data){
				//获取使用的数据
				data = data.res_body.data;
				// 渲染
				var html = template("detail_template",data);
				$(".o_warp").prepend(html);
				// 放大镜
				this.zoom();
				// 注册事件监听
				this.addListener();
			
			},
			//放大镜
			zoom: function() {
				$(".middle-zoom").elevateZoom({
					gallery:'gal1', 
					cursor: 'pointer', 
					//点击是将它的class属性设置为active
					galleryActiveClass: 'active'
				});
			},
			addListener: function() {
				// 添加到购物车
				$(".cart_go").click(this.addToCartHandler);
				$(".increment").on("click",$.proxy(this.Handlerin, this));
				$(".decrement").on("click",$.proxy(this.Handlerde, this));
				$(".select_xl").on("click",$.proxy(this.Handlersle, this));
				$("#amount").on("blur",$.proxy(this.inputHandler, this))
			},
			inputHandler:function(event){
				var amount=Number($("#amount").val());
				var reg = /^[1-9]\d*$/;
				if (!reg.test(amount)) { // 格式有误，则还原为原有数量值 结束函数操作
					$("#amount").val("1");
				}
			},
			//处理数据
			addToCartHandler: function(event){
				var currentProduct = {
					id: $("#id").text(),
					desc:$(".select span:first").text(),
					title: $(".title").text(),
					img: $(".zoom_detail img:first").attr("src"),
					price: $("#price").text(),
					amount:$("#amount").val()
				};
				if(currentProduct.desc === "请选择"){
					//默认第一条
					currentProduct.desc = $(".select1 span:first").text();
				}
				/* 判断是否已选购过当前商品 */
				$.cookie.json = true;//配置自动在js值与json文本之间相互转换
				//从cookie中查询是否存在
				var products = $.cookie("cart") || [];
//				// 判断是否已有选购
				var has = products.some(function(prod) {
					if (prod.id == currentProduct.id && prod.desc == currentProduct.desc) { // 已有选购商品
						prod.amount = Number(prod.amount) + Number(currentProduct.amount); // 数量自增
						return true;
					}
					return false;
				});
				if (!has) // 未选购
					products.push(currentProduct);
//
				// 保存购物车：存回cookie
				// 数据结构：[{id,title,img,price,amout},{id,title,img,price,amout},{id,title,img,price,amout}]
				$.cookie("cart", products, {expires: 10, path:"/"});
				//保存总数据在sum，cookie中
				var sum_amount =0;
				$.each(products,function(index,curr){
					sum_amount = sum_amount + Number(curr.amount);
				});
				$.cookie("sum", sum_amount, {expires: 10, path:"/"});
				//页面数据渲染
				$(".head_amount").text(sum_amount);
				// 抛物线效果 
				var end = $(".head_amount").offset(); // 终点坐标
				end.top -= $(window).scrollTop();//鼠标滚动距离
				var start = {top: event.pageY - $(window).scrollTop(), left: event.pageX}; // 起点坐标
				var flyer = $(".small_img").clone(); // 创建一个抛物线运动的元素（这里是克隆方式）
				flyer.height(50);
				flyer.width(50);
				// 运动
				flyer.fly({ 
					start, // 运动起点坐标
					end, // 运动终点坐标
					onEnd: function() { // 结束后，将资源销毁
						this.destroy();
					}
				});
				
	
				return false; // 阻止冒泡和阻止默认
			},
			// +/-数量处理
			Handlerin: function(event){
				var amount = Number($("#amount").val()-1)
				if(amount<=0){
					amount = $("#amount").val();
				}
				$("#amount").val(amount);
			},
			Handlerde: function(event){
				$("#amount").val(Number($("#amount").val())+1);
			},
			Handlersle: function(event){
				var src = event.target;
				var text = src.firstChild.innerText;
				$(".select span:first").text(text);
				$("select_xl").css("display","none");
			}

		}
		new Detail();
	});
});